'''
----商超管理系统（MySQL版）---
使用MySQL保存数据，实现超市日常管理中以下业务。

一、建立以下数据表并填充数据
产品表：products
列名：主键id  编号num  名称name  单价price  折扣discount

订单表：orders
列名：主键id  编号num  货品数量count  金额amount


二、实现以下菜单并实现业务:
1.查看所有商品信息；
2.查找商品（用户输入商品名称，查看价格和折扣）；
3.添加商品（id需要程序生成）；
4.修改商品价格和折扣（根据编号，设置折扣为0-1之间）；
5.删除商品（根据编号）；
6.查看所有订单；
7.删除订单（根据编号）；
8.订单统计（总销量，总销售额）；
9.商品结算（添加订单）。
'''
import orm


def show_products():
    tag = 'no'
    sql = f'''
        select * from products
    '''
    data = orm.read_data(sql)
    if data != ():
        tag = 'ok'
    print('---商品名称---单价---折扣---')
    for product in data:
        print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')


# 2.查找商品（用户输入商品名称，查看价格和折扣）；
def select_products():
    tag = 'no'
    name = input('请输入商品名称：')
    count = int(input('请输入购买商品数量（斤）：'))
    sql = f'''
        select name,price,discount from products where name='{name}'
    '''
    data = orm.read_data(sql)
    if data != ():
        tag = 'ok'
        print('---商品名称---单价---折扣---')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')


# 3.添加商品（id需要程序生成）；
def add_products():
    tag = 'no'
    name = input('请输入商品名称：')
    price = float(input('请输入价格：'))
    num = float(input('请输入商品编号：'))
    discount = float(input('请输入折扣（0-1）：'))
    sql = f'''
        insert into products values(null,{num},'{name}',{price},{discount})
    '''
    sql1 = f'''
        select * from products where name='{name}'
    '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if rows > 0 and data != ():
        tag = 'ok'
        print('主键-编号-商品名称-单价-折扣')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}\t{product[4]}')
    return rows


# 4.修改商品价格和折扣（根据编号，设置折扣为0-1之间）；
def update_products():
    tag = 'no'
    id = input('请输入要修改的商品编号：')
    price = float(input('请输入要修改的价格：'))
    discount = float(input('请输入要修改的折扣（0-1）：'))
    sql = f'''
            update products set price={price},discount={discount} where id ={id}
        '''
    sql1 = f'''
            select * from products where id='{id}'
        '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if rows > 0 and data != ():
        tag = 'ok'
        print('主键-编号-商品名称-单价-折扣')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}\t{product[4]}')
    return rows


# 5.删除商品（根据编号）；
def del_data():
    tag = 'no'
    id = int(input('请输入想要删除的商品编号：'))
    sql = f'''
        delete from products where id={id}
    '''
    rows = orm.write_data(sql)
    if rows > 0:
        tag = 'ok'
    return rows


# 6.查看所有订单；
def show_orders():
    tag = 'no'
    sql = f'''
        select * from orders
    '''
    data = orm.read_data(sql)
    if data != ():
        tag = 'ok'
        print('主键-编号-货品数量-金额')
    for order in data:
        print(f'{order[0]}\t{order[1]}\t{order[2]}\t{order[3]}')
    return tag


# 7.删除订单（根据编号）；
def del_orders():
    tag = 'no'
    id = int(input('请输入想要删除的订单编号：'))
    sql = f'''
        delete from orders where id={id}
    '''
    rows = orm.write_data(sql)
    if rows > 0:
        tag = 'ok'
    return rows


# 8.订单统计（总销量，总销售额）；
def count_orders():
    tag='no'
    sql=f'''
        select sum(count),sum(amount)from orders
    '''
    data=orm.read_data(sql)
    if data!=():
        tag='ok'
        print(f'总销量-总销售额')
    for order in data:
        print(f'{order[0]}\t{order[1]}')
    return tag
# 9.商品结算（添加订单）。
def add_orders():
    tag = 'no'
    id = int(input('请输入想要购买的商品编号主键：'))
    price = float(input('请输入想要购买的商品价格：'))
    num = float(input('请输入想要购买的商品编号：'))
    count = float(input('请输入想要购买的商品数量：'))
    amount=price*num
    sql = f'''
            insert into orders values(null,{num},'{count}',{amount})
        '''
    sql1 = f'''
            select id,num,count,amount from orders 
        '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if rows > 0 and data != ():
        tag = 'ok'
        print('主键-编号-货品数量-金额')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')
    return rows

# if __name__ == '__main__':
    # print(show_products())
    # print(select_products())
    # print(add_products())
    # print(update_products())
    # print(del_data())
    # print(show_orders())

    # print(del_orders())
    # print(count_orders())
    # print(add_orders())